package src

//单例模式
import (
	"fmt"
	"sync"
)

type SigleIns struct {
}

var SigleInsObj *SigleIns
var mu sync.Mutex

var once sync.Once

//初始化
func InitIns() *SigleIns {
	return &SigleIns{}
}
func GetIns() *SigleIns {

	if SigleInsObj == nil {
		mu.Lock()
		defer mu.Unlock()

		if SigleInsObj == nil {
			SigleInsObj = InitIns()
		}
		fmt.Printf("创建一个实例 \n")
	}
	fmt.Printf("返回一个实例 \n")
	return SigleInsObj
}

func GetInsOnce() *SigleIns {
	/*once.Do( func(){
		SigleInsObj = InitIns()
	})*/
	return SigleInsObj
}
